home *** CD-ROM | disk | FTP | other *** search
/ Chip 1996 October / CHIP 1996 oktober (CD08).zip / CHIP_CD08.BIN / xfree86.os2 / x11os2.faq < prev    next >
Text File  |  1996-09-11  |  64KB  |  1,439 lines

  1. The XFree86/OS2 FAQ
  2. -------------------
  3.  
  4. Version 0.4    30 Aug 96 Holger Veit, Sebastien Marineau
  5.  
  6. This FAQ represents the knowledge of several hundred mails received since 
  7. the release of XFree86/OS2 3.1.2D and 3.1.2E. Before you ask another question, 
  8. search here; there is a good chance that your question has been answered 
  9. already in this list.
  10.  
  11. This FAQ has been heavily extended and reorganized since the last version.
  12.  
  13. Table of Contents
  14. -----------------
  15.  
  16. 1. General Information
  17. 2. Installation and Troubleshooting
  18. 3. Compatibility, Features, Tips and Tricks
  19. 4. Programming and Porting of Software
  20. 5. Reported working hardware
  21. 6. Known Bugs and Missing Features in 3.1.2F
  22.  
  23. 1. General Information
  24. ----------------------
  25.  
  26. 1.1 What is X11, X11R6.1, XFree86, XFree86/OS2?
  27.  
  28.     X11, more precisely called "The X Window System" is a complete
  29.     window system that usually runs as the de-facto standard in
  30.     Unix environments.
  31.     X11R6.1 is the name of the current release.
  32.     XFree86 is a port of the X Window System to x86-based systems.
  33.     XFree86/OS2 is a particular port of XFree86 for OS/2 based systems.
  34.  
  35. 1.2 Where can I find more information?
  36.  
  37.     Books about X11 exist in any well-sorted CS bookstore.
  38.     Some URLs:    http://www.x11.org/
  39.             http://www.xfree86.org/
  40.             http://borneo.gmd.de/~veit/os2/xf86os2.html (XFree86/OS2)
  41.     Newsgroups:    comp.windows.x.* (X11 specific things)
  42.             comp.os.os2.programmer.* (OS/2 specific things)
  43.     Mailing list (for XFree86/OS2): see question 1.7
  44.  
  45. 1.3 How complete is XFree86/OS2?
  46.  
  47.     Almost complete. Missing is xdm (because there is no
  48.     secure architecture in OS/2 yet - in work), x11perf/xieperf
  49.     (because I was to lazy yet to rewrite the various shell scripts).
  50.     Other things should be present; but this does not mean that they
  51.     work correctly...
  52.     For other restrictions, read chapter 6 of this FAQ and the LATEST.OS2
  53.     file.
  54.  
  55. 1.4 What are the differences to commercial implementations?
  56.  
  57.     Personally, I am aware of IBM's PMX and Hummingbird's Exceed
  58.     product. There may be some more in the meantime. The two products
  59.     above differ from XFree86/OS2 mainly in two points:
  60.     - you have to pay for them
  61.     - they are based on the PM desktop
  62.     The latter means that they admittedly fit better into the complete
  63.     system, but also that they rely on the implementation of the PM
  64.     video subsystem and its performance (which is lousy for certain
  65.     hardware).
  66.     Also some facilities might not be present, such as background
  67.     images, PEX, XIE, DGA, or other X extensions.
  68.  
  69. 1.5 There are so many README files. Which one should I read?
  70.  
  71.     Why? All of them! Seriously: README and README.OS2 are the most
  72.     important for the first time. Also read files that refer to your
  73.     video hardware (such as README.S3, for instance).
  74.  
  75. 1.6 Is there a specific news group?
  76.  
  77.     There is no newsgroup specifically for XFree86/OS2, if there is
  78.     sufficient traffic, we could think about creating one. So far
  79.     I am usually available in the newsgroups comp.os.os2.programmer.misc
  80.     and comp.os.os2.programmer.porting. After the release, I will also
  81.     scan comp.os.os2.setup.misc for XFree86/OS2 specific questions
  82.     (including installation problems).
  83.  
  84.     Please avoid cross-posting to other groups, this won't speed up
  85.     answers. Many people who have been using the last version(s) of
  86.     XFree86/OS2 will also listen in the mentioned newsgroups, and will
  87.     be helpful.
  88.  
  89.     Please choose a meaningful subject, preferably containing the word
  90.     "XFree86" or "XFreeOS2" in the line.
  91.  
  92. 1.7 Is there a mailing list for XFree86/OS2?
  93.  
  94.     Yes, read http://borneo.gmd.de/~veit/os2/xf86mail.html for details.
  95.     If you already know how to subscribe to "Majordomo" mailing lists,
  96.     subscribe to majordomo@west.ingenia.com, the list name is "XFreeOS2",
  97.     the address for a posting is xfreeos2@west.ingenia.com.
  98.     There is also a digest version available, read the above URL.
  99.  
  100. 1.8 YOU MUST HELP ME, I HAVE PROBLEMS! 
  101.  
  102.     #exclude <politeness.h>
  103.     I "MUST" die some day, as everyone will. But this is the only thing
  104.     I really must. The whole project is totally on a voluntary basis,
  105.     everyone may contribute, but noone is forced to use the software,
  106.     and particularly YOU cannot force any warranty or usability of
  107.     the software, or make me do this or that.
  108.     Just to make this clear!
  109.     #include <politeness.h>
  110.  
  111. 1.9 Where do I get the source code for XFree86/OS2?
  112.  
  113.     For alpha and beta versions, the XFree86 people generally do not
  114.     release source code to the public. The next public release is
  115.     supposedly XFree86-3.2 to appear later this year (no date known).
  116.  
  117.     If you want to get hands on the source now, become a beta test member
  118.     of XFree86. You can request a membership application form from
  119.     BOD@XFree86.org.
  120.  
  121. 1.10 Help, I retrieved the latest version via FTP, and it says it is expired!
  122.  
  123.     3.1.2F is an alpha version which is built with the expiry date
  124.     Dec 1st, 1996. Other versions expired already earlier this year.
  125.     This behavior is standard with XFree86 versions 
  126.     that have a letter in the version ID (alpha or beta versions).
  127.     By the time of Dec 1st, there should be another beta version
  128.     or a new release of XFree86 and XFree86/OS2 available. What you
  129.     retrieved labeled as the "latest version" is definitely outdated.
  130.  
  131. 1.11 How do I ensure that I have the latest code?
  132.  
  133.     The official bugs page http:/borneo.gmd.de/~veit/os2/xf86bugs.html 
  134.     lists dates and sizes of the files we consider the most recent ones. 
  135.     Also this page may point to fixes and updates that you might have to 
  136.     install. Please report any abuse on FTP and Web servers which claim 
  137.     to have a more recent version (and don't refer to the pages at 
  138.     borneo.gmd.de) - this might be a faked and bogus version.
  139.  
  140. 1.12 I have found a bug. How do I report it?
  141.  
  142.     Ensure you really have found a bug, not a feature. Be sure you have
  143.     read and understood all accompanying READMEs including this FAQ.
  144.     Consult the official bugs page http://borneo.gmd.de/~veit/os2/xf86bugs.html
  145.     and verify that this bug hasn't been found yet.
  146.     If you appear to have found really a bug, send a detailed
  147.     bug report to Holger.Veit@gmd.de. Read Q 1.13 on information I need to
  148.     know.
  149.  
  150. 1.13 What do you need for a bug report?
  151.  
  152.     1. a valid email contact. In the past, some contact through the WWW
  153.        pages failed because of wrong configured WWW readers
  154.     2. The relevant hardware configuration (CPU, RAM, video card, monitor,
  155.        OS, fixpacks)
  156.     3. The "error.log" file (see below)
  157.     4. The "xf86log.os2" file (see below)
  158.     5. The "popuplog.os2" file (see below)
  159.     6. The "XConfig" file (see below)
  160.     7. If suspected, the CONFIG.SYS file
  161.     8. A description of the effect and how it can be reproduced
  162.     9. Information whether this also occurs on other systems with
  163.        same or different hardware, or Linux, etc.
  164.     10. 100000 US$ (...no, just kidding...)
  165.  
  166.     - To produce a error.log file, go to some directory and execute
  167.       from a PM window (CMD.EXE) the following command:
  168.         startx 2>error.log
  169.       Type it exactly this way, don't add spaces or comments.
  170.     - The xf86log.os2 file will be *sometimes* produced in the same 
  171.       directory where you created the error.log file. In many cases,
  172.       it is not present or empty.
  173.     - The popuplog.os2 file resides, if it exists, in the root directory
  174.       of the boot partition. If you find one, delete it, and create the
  175.       error.log file again (see above). If there is a new one then, it
  176.       is from the current run.
  177.     - The XConfig file is the /XFree86/lib/X11/Xconfig file produced by
  178.       the xf86config utility.
  179.  
  180. 1.14 I have problems with the installation, and don't know if this is a
  181.      bug. What to do?
  182.  
  183.     Read section 2 of this FAQ. If there are still unclear problems, first
  184.     try to ask in the newsgroup comp.os.os2.setup.misc with a meaningful
  185.     subject (only this newsgroup: this is what we read for this kind of
  186.     problems). If you are on the XFree86 mailing list, you may also ask
  187.     there. Please be concise there though, rather than flooding it with
  188.     all kinds of files - some people have to pay for their mail. You'll
  189.     be asked for more information, if the problem is not simple.
  190.  
  191. 1.15 Software, I want software!
  192.  
  193.     Look at the ported software WWW page at
  194.         http://borneo.gmd.de/~veit/os2/xf86ported.html
  195.     whether there is something for you. This page is updated whenever
  196.     someone ports something and gives me a pointer (read this page for 
  197.     submission rules). YOU MIGHT CONSIDER PORTING SOMETHING AS WELL!
  198.  
  199. 1.16 Are there some X11 books?
  200.  
  201.     Sure, ask in your book store. A user's guide is for instance:
  202.         Niall Mansfield, The X Window System - A User's Guide,
  203.         Addison Wesley
  204.     or
  205.         The Definite Guides to the X Windows System, Volume Three,
  206.         X Window System User's Guide, O'Reilly&Associates
  207.  
  208.     The latter one is part of an eight (nine,ten?) volume documentation
  209.     set for the X11 programmer. From my biased point of view of a
  210.     programmer, this is the most comprehensive must-have for the serious 
  211.     programmer (however, it does not belong to the cheaper booksets, 
  212.     unfortunately).
  213.     
  214.     Your mileage on book recommendations may vary, of course, and there
  215.     is much more stuff in the shelves.
  216.  
  217.  
  218.  
  219. 2. Installation and Troubleshooting
  220. -----------------------------------
  221.  
  222. 2.1 I have only a FAT file system. The doc says I need HPFS. What can I do?
  223.  
  224.     Well, reformatting your disk, or buying a new one? Sorry, 
  225.     life ain't easy.
  226.  
  227. 2.2 My video hardware works fine with OS/2, why doesn't it work with
  228.     XFree86/OS2?
  229.  
  230.     This is because XFree86/OS2 uses its own video handler, and does
  231.     not rely in any way on the OS/2 video subsystem. Infact, we are
  232.     investigating, whether it is possible to run without PM entirely.
  233.     The sets of supported hardware of OS/2 and XFree86 overlap, but
  234.     do not match exactly.
  235.     The /XFree86/lib/X11/doc/README file lists supported video hardware.
  236.  
  237. 2.3 I have the video card XYZZY, which is not listed (see Q2.2). What can I do?
  238.  
  239.     In many cases, the XF86_VGA16.exe server will work - if the card is
  240.     VGA compatible. This of course does not use its capabilities in most
  241.     cases. So, the important thing that cannot be stressed too often 
  242.     here is:
  243.  
  244.         BUY HARDWARE AFTER CHECKING THAT IT WILL SUIT YOUR NEEDS!
  245.         BOYCOTT MANUFACTURERS THAT WON'T GIVE YOU WHAT YOU WANT!
  246.  
  247.     You won't buy a video card coming only with Win95 drivers, when you 
  248.     want to run OS/2, will you? Specifically request that your video card
  249.     is supported by OS/2 and "Linux" (!); in the latter case it will run
  250.     XFree86/OS2 as well. Refrain from the latest and fastest super card
  251.     from your PC magazine, buy well-known and reliable hardware.
  252.     Sorry for you with your XYZZY card.
  253.  
  254. 2.4 The video card XYZZY does not work with any server. Will you write an 
  255.     X Server for me?
  256.  
  257.     I (nor other people from XFree86/OS2 likely) won't write X servers.
  258.     This is the business of the XFree86 core group. We basically take
  259.     what we get and adapt it to OS/2 (besides a general bug fixes and
  260.     OS/2 dependent improvements). There are three important points to
  261.     get a server for the own hardware:
  262.     - test hardware is required
  263.     - documentation is needed
  264.     - a volunteer to do the job is needed
  265.  
  266.     In some cases, the manufacturer refuses to give out specs (such
  267.     as Diamond and Matrox); in this case we cannot do anything, and you
  268.     are SOL with your hardware.
  269.  
  270. 2.5 When trying to run the system, I get some error message that some
  271.     XF86SUP.SYS is not present, or similar. I don't have this thing.
  272.  
  273.     Oh, you have it, you just didn't read the README.OS2 as you were
  274.     supposed to. This driver is in /XFree86/lib/xf86sup.sys and needs
  275.     to be added as a DEVICE in CONFIG.SYS. XFree86/OS2 won't work without
  276.     it.
  277.  
  278. 2.6 What is the XF86SUP.SYS device driver good for?
  279.  
  280.     See also URL http://borneo.gmd.de/~veit/os2/xf86sup.html.
  281.     This device driver provides certain essential base functionality
  282.     which is probably available elsewhere scattered all over the system.
  283.  
  284. 2.7 Error message "the XF86SUP.SYS driver could not be installed, blurb..."?
  285.     What is happening here?
  286.  
  287.     You are sure the path is correct?
  288.     You have probably read my EDM/2 article "32 bit I/O at Warp Speed" and
  289.     have installed the FASTIO.SYS driver. The XF86SUP.SYS driver is
  290.     a superset of this. Remove FASTIO.SYS from your CONFIG.SYS; you won't
  291.     need it anymore, XF86SUP.SYS will take over all the functions.
  292.  
  293. 2.8 What does "EMX.DLL not found" mean?
  294.  
  295.     It means you haven't read the docs thoroughly. README.OS2 says
  296.     you must get and install EMXRT.ZIP. A suitable EMXRT.ZIP should be
  297.     in the directory where the 312F*.zip files are.
  298.  
  299. 2.9 What does "This program requires emx.dll revision 42 (0.9b fix 05)
  300.     or later. Please delete or update x:\foo\bar\emx.dll" mean? I do have
  301.     installed the latest EMXRT.ZIP file!
  302.  
  303.     It means that there is an outdated version of EMX.DLL still left
  304.     in your LIBPATH. We make it even easy for you as we tell you where it
  305.     is: in "X:\foo\bar\emx.dll". Remove this file. If you still get this
  306.     error message, now with a different directory, you should seriously
  307.     consider to clean up your disk to get rid of the various instances of
  308.     outdated code.
  309.  
  310. 2.10 When I run "checkinstall" as requested by the README.OS2 file, after
  311.      editing CONFIG.SYS, I get countless errors. Why?
  312.  
  313.     Did you reboot after editing CONFIG.SYS? If so, analyze the error
  314.     messages that checkinstall tells you. Usually it is right with its 
  315.     comments!
  316.  
  317. 2.11 I cannot get rid of the message "***XFWARN......." the "checkinstall"
  318.      program tells me.
  319.  
  320.     Well, you should. Though XFWARN... denotes a warning. It is not fatal
  321.     but you should be aware that this can point out a problem.
  322.  
  323. 2.12 Do I need a fixpack installed? I have none.
  324.  
  325.     Don't fix things that are not broken. If your system works well 
  326.     without a fixpack: that's great. Don't change anything.
  327.  
  328.     Fixpack 5 contains some recommended fixes. You might consider
  329.     to install at least this one.
  330.  
  331.     In the future, you might be forced to install Fixpack 17 (or get
  332.     Merlin), because this has certain support which becomes mandatory
  333.     in the future.
  334.  
  335.     And yes: fixpacks are cumulative, i.e. a FP with a higher number
  336.     contains all fixes of the ones with a lower number.
  337.  
  338. 2.13 I unpacked everything, and now I don't find the xf86config.exe, the server
  339.      or the SuperProbe program mentioned in the docs. What happened?
  340.  
  341.     Did you use DOS PKUNZIP? Or did you unpack onto a FAT partition?
  342.     And did you read what the docs say about this?
  343.  
  344. 2.14 There is an error box popping up the the "device PTYP0 is not ready". 
  345.      Help?
  346.  
  347.     Shouldn't happen with 3.1.2E or later any longer. This points out 
  348.     that you have still an outdated EMX.DLL in your system, or that 
  349.     XF86SUP.SYS and OS/2 got severely confused. I have seen this twice
  350.     since EMX.DLL was up-to-date; in both cases some other effects brought
  351.     me to the conclusion that a reboot would be the best solution.
  352.  
  353. 2.15 Something does not work. Can I get more information?
  354.  
  355.     Normally you would start the system by running 'startx'.
  356.     This will display a number of messages for a short time. If something
  357.     goes wrong, you will likely see it there. To get a permanent
  358.     version of these messages, simply redirect them into a file 'error.log'
  359.     by starting the system in the following way:
  360.         startx 2>error.log
  361.     Also read Q 1.13 on a few other files that might exist. The following
  362.     questions deal with messages found in these files.
  363.  
  364. 2.16 What is that "XConfig" file everyone is talking about?
  365.  
  366.     This file is created by the "xf86config" program when you install the
  367.     system according to the README.OS2 file. It is located at
  368.     \XFree86\lib\X11\XConfig. This file is named "XF86Config" on Unix
  369.     systems, and may be located in various other places there. It MUST be
  370.     in the specified place in XFree86/OS2, in contrast to Unix, though. 
  371.     This file is a text file, and in some cases you MUST edit things
  372.     there (see below elsehere).
  373.  
  374. 2.17 Can you please send me an XConfig file for my BLURB video card and a 
  375.      BLAH-BLAH monitor?
  376.  
  377.     (This is the all-time favorite FAQ in the XFree86 user mailinglist,
  378.     and is as stupid as a request for "a CONFIG.SYS which works with OS/2").
  379.     No. There is no free lunch. The cards database lists a few hundred
  380.     boards with several options each and there are many monitors as well, 
  381.     so there are countless combinations of XConfig files. You must go 
  382.     through the xf86config configuration program for yourself - everyone 
  383.     else had to do this as well; so don't ask for this.
  384.  
  385. 2.18 What is this XKB option in "xf86config"?
  386.  
  387.     XKB is the "X Keyboard Extension", a supposedly general subsystem to 
  388.     deal with keyboard layouts for various systems. It is supposed to
  389.     replace the old "X modifier map" system (xmodmap). Unfortunately, in
  390.     OS/2 this does not work correctly yet, so answer "NO" when asked by
  391.     xf86config (xf86config is common code for all XFree86 flavors, so it
  392.     can also offer you choices you really don't have). Saying "YES" here
  393.     can cause all kinds of subtle bugs. See also Q 2.2*.
  394.  
  395. 2.19 I have specified all things correctly in xf86config, and also my video
  396.      card was listed, but it doesn't work. Multiple effects: doesn't
  397.      synchronize, horizontal or vertical stripes, mouse movement overwrites
  398.      background, etc.
  399.  
  400.     This is one of the cases where you might need to edit the XConfig
  401.     file. For many videocards, the file contains option lines in the
  402.     "Device" section which are commented out (with a '#' symbol) by
  403.     default. These options are named "no_linear", "nomemaccess", 
  404.     "noaccel", or even totally different. Video cards are often different
  405.     even when coming from the same manufacturer and having the same brand
  406.     name, but they aren't (some manufacturers are notorious for changing
  407.     the horses at full speed while the race is going on). You should try
  408.     out options that are listed in this section and use the one which
  409.     works for you. Also consult the README.yourservername (e.g. README.SVGA) 
  410.     if it exists for specific hints.
  411.  
  412. 2.20 Where do I find the parameters of my monitor?
  413.  
  414.     In your monitor manual. If you are adventurous, you could also try to 
  415.     guess them, but be warned that older monitors can "burn out" and get
  416.     damaged if they are fed with wrong input data. So if you find out that
  417.     with your settings the picture won't stabilize, IMMEDIATELY press the
  418.     CTRL-ALT-BACKSPACE keys.
  419.  
  420. 2.21 How can I get a better resolution than "640x480"?
  421.  
  422.     In 3.1.2E and later, you can switch between the available standard
  423.     resolutions with CTRL-ALT-KEYPAD"+" and CTRL-ALT-KEYPAD"-". This does
  424.     not neccessarily mean that there ARE other resolutions. With 1MB of
  425.     video RAM, you cannot have more than 1024x768x8, for instance you
  426.     have not enough video RAM for 1280x1024x8. The X server calculates
  427.     the allowed resolutions from the available "Clocks", the video RAM,
  428.     the monitor limits, and the available mode lines. This means, if you 
  429.     have a standard-VGA 14" monitor for 640x480 @ 70Hz, the xserver wcould
  430.     refuse to offer you 1024x768, because it would result in sync
  431.     frequencies beyond the limits of the monitor. The X server is
  432.     conservative here, so it might be still possible to tune the
  433.     frequencies to the limits of the monitor manually (see Q 2.23).
  434.  
  435. 2.22 My laptop has a LCD screen which supposedly can do 800x600, but the
  436.      server won't accept more, and starts in 640x480 which leaves a 1 inch
  437.      border unused (seen on Toshiba laptops).
  438.  
  439.     Warning: your mileage may vary, do this only on a laptop which really
  440.     allows 800x600! LCD screens actually don't use horizontal and vertical
  441.     sync frequencies, so the X server is over-careful with rejecting them.
  442.     You can try to lie about the capabilities and specify unreasonable
  443.     30-100Hz and 16kHz-100kHz for the sync ranges, and then the server
  444.     should offer you 800x600. There is a gotcha: if you connect an
  445.     external monitor to the VGA connector, the sync range applies again,
  446.     so you might configure it for 800x600 first, and then the LCD screen
  447.     should allow this as well.
  448.  
  449. 2.23 How can I setup a resolution of "1152x900x8", or any other resolution?
  450.  
  451.     The Xserver looks for suitable "Modeline" statements in the XConfig
  452.     file. By default, the XConfig file has the standard VESA resolutions.
  453.     For a non-standard resolution, you must calculate the 8 numbers in the
  454.     modeline manually. Get the file 
  455.     ftp://borneo.gmd.de/pub/SYDIS/X/fixes/videomod.zip for a documentation
  456.     for this.
  457.  
  458. 2.24 The X screen is not correctly aligned, it is shifted to the {right,left,
  459.      top, bottom}, too {wide, small, large, narrow}... etc. The presentation
  460.      manager screen is "correctly" aligned.
  461.  
  462.     With 3.1.2E there is a (working) utility named "xvidtune" which allows
  463.     to shift and stretch the X screen. This will produce a new mode line
  464.     which you have to add to the XConfig file in the place of the old
  465.     misaligned one. BTW: This program usually won't work with a LCD
  466.     display (see also Q 2.22).
  467.  
  468. 2.25 Can I have different resolutions for PM and XFree86?
  469.  
  470.     Yes, no problem, provided you don't reach the limits of your hardware.
  471.  
  472. 2.26 What does "No screens found" mean?
  473.  
  474.     The X server removes all "Modeline" statements from the list of valid
  475.     modes which don't work for your video card or monitor. In this case, no
  476.     valid line was left. This happens once in a while with some Diamond 
  477.     S3 cards. Check whether xf86config has setup the "Clocks" and
  478.     "VideoRam" lines correctly, and correct them if necessary.
  479.     
  480. 2.27 I have tried to run "X -probeonly" as requested by xf86config and it says
  481.      it didn't find clocks. I have a Mach64 card.
  482.  
  483.     Mach64 cards and several others have a "clock chip" which can 
  484.     synthesize many frequencies. Xf86config therefore recommends NOT to
  485.     run "X -probeonly", please read what the program tells you. Some other
  486.     cards, for instance SVGA cards have fixed frequencies, you must run
  487.     this. Xf86config has been changed to call the correct X server, but
  488.     this might not work in all cases. In this case, run it from a CMD
  489.     window manually by: 
  490.         \XFree86\bin\XF86_yourserver.exe -probeonly | grep "Clocks"
  491.     and add the corresponding mode line manually to the XConfig file.
  492.     Note: this line shows that you need the "grep" program (see also 
  493.     Q 2.28).
  494.  
  495. 2.28 Xf86config reports "grep failed". What is that?
  496.  
  497.     During probing, xf86config calls the grep utility, which you don't
  498.     have installed. Get /os2/unix/grep20.zip from hobbes.nmsu.edu (or 
  499.     elsewhere). Well, this is the last clue that X11 came from Unix; there
  500.     are a few other tools you might need. /os2/unix/gnu*.zip should have
  501.     most things you'd encounter.
  502.  
  503. 2.29 I got "1024x768" by switching CTRL-ALT-KEYPAD"+". How do I make this
  504.      default?
  505.  
  506.     In the section "Screen", subsection "Display" there is the line "Modes"
  507.     which lists all the resolutions that can be switched to with 
  508.     CTRL-ALT-KEYPAD"+" or "-". Reorder this line with a text editor.
  509.     Attention: there are many of these sections, for SVGA, Mono, Accel, 
  510.     AND for your video card AND for different numbers of colors.
  511.  
  512. 2.30 How do I get a pixel depth of 16 or 24 bits? The server seems to start 
  513.      with 8 bits only.
  514.  
  515.     Provided your X server supports depths other than 8 (not all do):
  516.     Start the X server with the option "-bpp 16" or "-bpp 24". This can
  517.     be accomplished by passing this option to the startx command as
  518.         "startx -- -bpp 16"
  519.     for instance.
  520.  
  521. 2.31 What does "SocketINETConnect() can't connect: errno = 65" mean?
  522.      What does "SocketINETConnect() can't connect: errno = 61" mean?
  523.  
  524.     These messages *can* point out a network installation problem, in
  525.     many cases they are secondary errors, though, and are really
  526.     caused by a different problem. Nevertheless, you should ensure that
  527.     your network is setup correctly. Check for other symptoms in your 
  528.     error.log file.
  529.  
  530. 2.32 A "non-recoverable error occurred. The process ended." or a SYS2070 error
  531.      occurs when I attempt to run an X client.
  532.  
  533.     Either one of your X DLLs or the X client executable is defective.
  534.     Check the presence of a POPUPLOG.OS2 file in the root directory of
  535.     your boot partition; if present it should list the file in error
  536.     among the register dump.
  537.  
  538. 2.33 Error message "Couldn't open default PEX font file Roman_M"
  539.  
  540.     This should no longer happen with 3.1.2E (report the converse!).
  541.  
  542. 2.34 Error message "Maximum number of clients reached"
  543.  
  544.     This should no longer happen with 3.1.2E (or at least with much more 
  545.     than just 10 clients).
  546.  
  547. 2.35 Error message "Couldn't open compiled keymap file ..."
  548.  
  549.     This is an error message from XKB. This unfortunately still does 
  550.     not work. You must have a line "XkbDisable" in your XConfig file. 
  551.  
  552. 2.36 Error message "Unable to load font 'fixed'"
  553.  
  554.     This points out a problem with the "FontPath" lines in the XConfig 
  555.     file. You must disable (with a '#' at the beginning of the line) all
  556.     "FontPath" lines for font packages you haven't installed. Xf86config
  557.     will now do this by default during install, but if you add fonts
  558.     later, you need to edit XConfig manually.
  559.     BTW: it is not sufficient that just the directory is present.
  560.  
  561. 2.37 Where is this "fixed" font? I haven't seen any file with this name.
  562.  
  563.     "fixed" is an alias, which is associated with some font in the 
  564.     "fonts.alias" file in the directory /XFree86/lib/X11/fonts/misc. The 
  565.     font is then associated with a file in the "fonts.dir" file in the
  566.     same place.
  567.  
  568. 2.38 How can I add a font package, e.g. the "cyrillic font" set?
  569.  
  570.     Unpack it in the correct place, and then manually add a "FontPath" 
  571.     line in the XConfig file.
  572.  
  573. 2.39 How can I use the OS/2 fonts from the \PSFONTS directory?
  574.  
  575.     This is still a problem. In general, I found that these fonts, i.e.
  576.     the .pfb files are compatible to the Type1 font reader built into the
  577.     server. You would just have to write a fonts.dir file containing the
  578.     mapping between a file name and the 14-part font specifier (see
  579.     /XFree86/lib/X11/fonts/*/fonts.dir for all fonts in \PSFONTS. The 
  580.     problem I detected though is that fonts imported this way apparently 
  581.     make the system run *very* slow. I have no idea why, but this will
  582.     be analyzed further.
  583.  
  584. 2.40 XFree86 works fine, but when I try to switch back to the PM screen, the 
  585.      screen (X or PM or both) is corrupted.
  586.  
  587.     This turned out as buggy OS/2 video drivers in almost all cases. OS/2 
  588.     video drivers are supposed to save the complete context (VGA registers
  589.     and video memory) when a full screen session is entered. Some lousy
  590.     written video driver doesn't save enough, e.g. only the portion of
  591.     the video memory that is used by text sessions or the rather
  592.     limited amount used by the supported WinOS/2 screen resolutions.
  593.     There is no good solution for the problem, as Video DD writers seem 
  594.     to experiment a lot, which means that an older video driver might
  595.     have this problem fixed, whereas the latest version may no longer
  596.     work. Please complain to your card vendor. If they are interested in
  597.     satisfied customers, they should deal with the problem. Please
  598.     refer to me and the XFree86 group when you describe the problem. We
  599.     know enough about the way XFree86 and OS/2 work together to understand
  600.     that the problem is on the OS/2 video driver side.
  601.  
  602. 2.40 Why does Watchcat screw the screen colors?
  603.  
  604.     This is a current bug/limitation of the Xserver. When Watchcat
  605.     (or any program which uses the popup mechanism in OS/2) is invoked, 
  606.     the current palette is not saved. Screen corruption may also occur.
  607.     This will only affect pixel depths where a palette is used (4bpp and
  608.     8bpp).
  609.  
  610. 2.41 The OS/2 server does not find my configuration files, but I have
  611.      placed them in the correct locations as for my Unix X servers.
  612.  
  613.     XFree86-OS/2 stores all configuration files in a common 
  614.     directory. This is X11ROOT:\XFree86\lib\X11, where X11ROOT is an
  615.     environment variable which contains the drive letter the directory
  616.     tree is located. The common places like /usr/X11, /usr/X11R6,
  617.     /usr/XFree86, /etc which are used for XFree86 in various Unix
  618.     flavors, are not supported to avoid the mess they have caused in 
  619.     the past.
  620.     There, you should put your Xconfig file, the color database (rgb.txt), 
  621.     the host authorization files (X0.hosts), and various other files. 
  622.  
  623. 2.42 I redirect stderr to a file to capture the diagnostic/error messages 
  624.      from the server, but after the video mode gets set, I do not get any
  625.      more messages. What is going on?
  626.  
  627.     After the video mode has been set, stderr gets redirected to a file
  628.     called "xf86os2.log". You can find the rest of the server messages
  629.     there.
  630.  
  631. 2.43 The server does not start when my TMP directory has a trailing backslash
  632.      character.
  633.  
  634.     Right, this is an oddity. Remove the trailing backslash. BTW:
  635.     did you run "checkupdate"?
  636.  
  637. 2.44 Some clients complain that they cannot write to the TMP dir.
  638.  
  639.     Right, TMP must reside on HPFS. BTW: did you run "checkupdate"?
  640.  
  641. 2.45 When I use xconsole, there is always a warning message in the first line.
  642.      What is that?
  643.  
  644.     You mean the text "Warning: process PID=????? is accessing
  645.     /dev/fastio$", right? This is an intentional notification that some 
  646.     process uses the fastio device to perform access to I/O ports. It is
  647.     also intentional that this message cannot be disabled. As long as the
  648.     PID is the process ID of the X server, everything is okay. If the PID
  649.     belongs to another, unknown process, you should seriously ask the
  650.     author of the program what he/she is doing with your hardware.
  651.  
  652. 2.46 I found that killing the X server or the window manager won't work
  653.      well to end X11. How can I shutdown X11?
  654.  
  655.     Yes, we know it is a problem, mainly related to signal handling that
  656.     is not fully compatible to Unix signaling as well as some differences 
  657.     in session semantics. XFree86 is not really intended to be started up
  658.     and shutdown all the time (this is BTW bad manner of users who were
  659.     accustomed to have only one program open under Windows, because a
  660.     second one would fail running out of resources). If you don't need
  661.     XFree86 for a moment, just leave it running in the background -
  662.     eventually it will be completely swapped out in the swapfile, and you
  663.     won't need to bother about it eating up resources).
  664.  
  665.     Part of the problem is that clients started in xinitrc.cmd remain
  666.     under PM control (i.e. its parent is PM, not xinit, as intended), so
  667.     when X goes down, it doesn't destroy these clients with it.
  668.  
  669.     Currently the following methods appear to work: pop up the window list
  670.     (CTRL-ESC) and close the xinitrc.cmd process. If this does not help,
  671.     close the other remaining X processes in the same way. Alternatively
  672.     to the close function of the window list, a process kill program
  673.     (killem, killit, pmkill, etc) or Watchcat should also work.
  674.  
  675. 2.47 Sometimes some X11 process is still around after shutting down. Bug or
  676.      Feature?
  677.  
  678.     More feature (of OS/2) than bug. See Q 2.25. We'll try to improve 
  679.     this. For now remove the process with a method described in 2.25.
  680.  
  681. 2.48 How can I uninstall XFree86/OS2?
  682.  
  683.     You really dare to ask? Ok, if you want to do this: there is nothing
  684.     special with uninstalling, because there are no INI file entries
  685.     to be removed.
  686.     1. Exclude the driver XF86SUP.SYS from config.sys, and if you like,
  687.        also the environment variables that were set during installation.
  688.        Attention: some of them are necessary for proper TCP/IP networking.
  689.     2. Remove the complete tree \XFree86.
  690.  
  691. 2.49 How can I uninstall specific packages of XFree86/OS2?
  692.  
  693.     You don't like it, do you? Currently there is no way to specifically
  694.     remove packages, but this is planned for the future. For now,
  695.     simply list the ZIP archive where the files were coming from and
  696.     manually remove these files.
  697.  
  698. 2.50 The server does not find my IAK localhost network?
  699.  
  700.     Be sure that the line to be entered in \tcpip\etc\hosts ends
  701.     with a newline.
  702.  
  703. 2.51 I have added a new font directory, but now the X server complains with the
  704.      message "Font path component expected". This directory does exist!
  705.  
  706.     You must put the path name behind the FontPath keyword in double
  707.     quotes (").
  708.  
  709. 2.52 What does the error message "_X11TransOs2OpenClient: Open server pipe 
  710.      \PIPE\X\xf86.0 failed" mean?
  711.  
  712.     This is for the local named pipe communication the same problem as
  713.     Q 2.31 is for the network connection. It basically means: the server
  714.     crashed for some reason, and now a client, e.g. xterm cannot connect
  715.     to the server. The real reason is probably hidden somewhere else in
  716.     the XConfig file.
  717.  
  718.  
  719. 3. Compatibility, Features, Tips and Tricks
  720. -------------------------------------------
  721.  
  722. 3.1 Can I ...?
  723.     3.1.1 ... run PM and WPS programs?
  724.     YES, but not on the X11 desktop yet.
  725.  
  726.     3.1.2 ... run DOS programs?
  727.     YES, in another fullscreen or PM windows session.
  728.  
  729.     3.1.3 ... run Windows programs?
  730.     YES, in a fullscreen DOS session or seemless under PM.
  731.     Someone volunteering to port Wine?
  732.  
  733.     3.1.3.1 ... run Win95 programs?
  734.     You are kidding. Go back playing with your LEGO toys.
  735.  
  736.     3.1.3.2 ... run DOOM?
  737.     By default, the answer is NO.
  738.  
  739.     3.1.4 ... exchange data between PM and X11?
  740.     Not yet, but if someone with the knowledge implements OS/2 DDE
  741.     in xclipboard... would be a valuable addition.
  742.  
  743. 3.2 Yes, but ...
  744.     3.2.1 the commercial Xserver implementations appear to be able to allow
  745.           all the above things?
  746.     The commercial X implementations are based on the PM desktop, and
  747.     can therefore use certain facilities available there. The price
  748.     you pay for this is not just financial, but mainly speed.
  749.     And no, the commercial Xserver implementations do not allow all
  750.     these things; read their docs, not their ad flyers.
  751.  
  752. 3.3 Are the XFree86/OS2 DLLs compatible to the IBM PMX or Exceed ones?
  753.  
  754.     No.
  755.  
  756. 3.4 Will you make them compatible to IBM PMX or Exceed (...so that I
  757.     won't have to buy their development kits...)?
  758.  
  759.     No. It is not possible. PMX is outdated X11R5, and Exceed is
  760.     just X11R6, but not X11R6.1. Furthermore, both vendors on one hand
  761.     and I on the other hand have modified the X11 libraries in certain
  762.     ways, so even with the same naming conventions and numbering of API
  763.     functions we cannot reach plug-in compatibility.
  764.  
  765. 3.5 Can PMX and other X clients connect to the XFree86/OS2 server?
  766.  
  767.     Yes, this works without problems. Note that if a XFree86 client
  768.     connects to a PMX server, be aware that PMX is X11R5, and XFree86
  769.     is X11R6, so certain things won't work which require R6 features
  770.     or XFree86 extensions. As an example, "xvidtune" won't work with
  771.     PMX or Exceed, because it uses a specific XFree86 extension of the
  772.     X server.
  773.  
  774. 3.6 Can you use PMX and XFree86 simultaneously?
  775.  
  776.     Yes, just make sure you avoid name clashes. PMX installs files in
  777.     \TCPIP\DLL and \TCPIP\BIN which cause name clashes and obscure crashes
  778.     of XFree86 X clients, so to run XFree86 with an installed PMX, you
  779.     must have \XFree86\bin before \TCPIP\BIN in your PATH, and 
  780.     \XFree86\lib before \TCPIP\DLL. Read about BEGINLIBPATH in your
  781.     OS/2 command reference manual.
  782.  
  783.     You should run the PMX server on display :0 and the 
  784.     XFree86 one on display :1 (attention: the startx.cmd has this coded 
  785.     to :0 by default).
  786.  
  787. 3.7.1 How can I display remote clients on XFree86/OS2, e.g. from a Linux
  788.       system?
  789.  
  790.     You must have a network connection to Linux, this is obvious. OS/2 
  791.     must run the X server, the remote system may, buy doesn't need to run 
  792.     a server. You must give the remote system permission to display 
  793.     windows on the OS/2 server, by executing
  794.         xhost +remotesystemname
  795.     on the OS/2 system (enter this in a OS/2 CMD window, add this to the 
  796.     startx.cmd file, or add it to the X0.hosts file). You must tell the
  797.     remote clients to use the OS/2 X server as a display by starting them
  798.     with the standard "-display" option, e.g.
  799.         xterm -display os2systemname:0.0
  800.     (you can also set the global environment variable 
  801.         DISPLAY=os2systemname:0.0 
  802.     on the remote host).
  803.  
  804. 3.7.2 How can I display OS/2 X clients on a remote system?
  805.  
  806.     See Q 3.7.1, just vice versa.
  807.  
  808. 3.8 How can I enable authorization for host foo.edu without using xhost?
  809.  
  810.     Create the file X0.hosts in \XFree86\lib\X11. To enable connections
  811.     from a certain host, add in a line containing "inet:hostname" to the 
  812.     file. For example, your file may look like this:
  813.         inet:foo.edu
  814.         inet:friendly.host.edu
  815.         ..
  816.     Note that the "X0" refers to the zero in the display name 
  817.     "os2systemname:0", i.e. in the case of Q 3.6 this would become a 
  818.     X1.hosts then.
  819.  
  820. 3.9 How can I connect to a remote XDMCP host?
  821.  
  822.     This is needed in some university and corporate environments. You 
  823.     can start the X server with the option -query xdmcphostname" for this.
  824.  
  825. 3.10 Where is XDM? There is only a man page for it.
  826.  
  827.     Yes, it is not yet ported; certain infrastructure is still missing.
  828.  
  829. 3.11 Can I use another shell like 'bash' in place of CMD.EXE in an xterm?
  830.  
  831.     Most shells are subtly incompatible with the PTY mechanism used
  832.     in xterm. A symptom may be that they won't work either if you
  833.     redirect console I/O to a COM terminal which should be possible.
  834.     'bash' is such an incompatible shell. See also Q 3.11 and 3.13
  835.  
  836. 3.12 I use 4OS/2 (or some other shell) as my shell. Will it work in xterms?
  837.  
  838.     4OS2 has a number of misfeatures, politely spoken, in xterms. We 
  839.     attempt to fix this in the future. For now, don't use it in an an 
  840.     xterm. If 4OS2 or another shell is in your OS2_SHELL or SHELL 
  841.     variable, please add an environment variable named X11SHELL to point 
  842.     to a valid CMD.EXE path, e.g.
  843.         SET X11SHELL=D:\OS2\CMD.EXE
  844.     in your config.sys. This will override the OS2_SHELL or SHELL setting 
  845.     which is used otherwise.
  846.  
  847. 3.13 Why does \OS2\MORE.COM give a SYS0447 in an xterm?
  848.  
  849.     This is a program which silently assumes it has access to the
  850.     keyboard and the screen: it uses functions from KBDCALLS, MOUCALLS,
  851.     or VIOCALLS. There are more programs of this kind, for instance: 
  852.     most *.COM in \os2, ATTRIB.EXE, BACKUP.EXE, CACHE.EXE,
  853.     EAUTIL.EXE, FIND.EXE, HELPMSG.EXE, LINK.EXE, LINK386.EXE, PATCH.EXE,
  854.     PSTAT.EXE, REPLACE.EXE, RESTORE.EXE, SETBOOT.EXE, SORT.EXE, SPOOL.EXE
  855.     SYSLEVEL.EXE, TEDIT.EXE, TRACE.EXE, UNPACK.EXE, XCOPY.EXE, XDFCOPY.EXE,
  856.     but also unfortunately TELNET and FTP, and some others; infact, 
  857.     almost any 16 bit application is a possible candidate. Note that 
  858.     CMD.EXE is a clean application.
  859.     You can use the EWS utility EXEMAP.EXE to check if these DLLs are
  860.     linked in.
  861.     Note: the existance of these DLLs does not mean that the program does
  862.     not work at all, actually EMX itself is a DLL that could call KBD
  863.     API functions but usually does not in the X11 environment.
  864.     However, certain unexpected effects may occur in an xterm.
  865.     I'll try to find a workaround for this in the future, but don't 
  866.     count on this.
  867.  
  868. 3.14 FTP seems to work in an xterm, but it does not hide the password?
  869.  
  870.     This is a side effect of what was described in Q 3.13. So actually 
  871.     FTP does NOT work.
  872.  
  873. 3.15 Is there a replacement for telnet which works?
  874.  
  875.     You may try out x3270, available from the ported software WWW page 
  876.     (Q 1.15).
  877.  
  878. 3.16 Will there be a PM-based Xserver, like PMX, in XFree86 in the future?
  879.  
  880.     This was discussed, and there appear to be arguments in favor of it;
  881.     but there must be someone who wants to work on this.
  882.  
  883. 3.17 Does the server support OS/2 fonts? How do I set those up?
  884.  
  885.     (3.1.2D) You mean Adobe Type 1 fonts, such as in C:\PSFONTS? 
  886.     Support for this was built into the servers, but we have yet to
  887.     verify this.
  888.  
  889. 3.18 How can I run other apps initially?
  890.  
  891.     You can configure the file X11ROOT:\XFree86\lib\x11\xinit\xinitrc.cmd.
  892.     This is an editable REXX script. Usually you will only modify the
  893.     section "start some nice programs". You should use 'start/min' to
  894.     run the command and put all arguments in '' or "", because REXX
  895.     may come to the wrong conclusion to interpret certain commands.
  896.     The last command before the exit must be started without the 
  897.     'start/min'. If you kill this program, X11 will shutdown. In 3.1.2E,
  898.     this is configured as 'twm'. So if you select exit on the root menu
  899.     of twm, it will shutdown XFree86/OS2. Please read Q 2.46 about some 
  900.     gotcha.
  901.  
  902. 3.19 Does XFree86/OS2 support LBX (low bandwidth X)?
  903.  
  904.     The last (non-OS/2) version of XFree86 had a special data compression
  905.     feature for transferring X protocol packets over slow modem lines,
  906.     named Low Bandwidth X. This option has been withdrawn by the
  907.     X Consortium due to various bugs. A replacement will be possibly
  908.     added again in the future, but it is not supported now.
  909.  
  910. 3.20 Can it be run over modem lines anyway?
  911.  
  912.     Yes, besides the speed problem this is possible provided you
  913.     have a correctly configured SLIP or PPP connection using TCP/IP.
  914.     Pseudo-SLIP, such as 'term', or kermit does not work (just before
  915.     someone asks). But even with 28,8K it is no fun without packet
  916.     compression (see also Q 2.15).
  917.  
  918. 3.21 Can I use the XF86Config file from Linux or *BSD?
  919.  
  920.     Yes, if it is a 3.1.2D XF86Config file, and if you change the
  921.     mouse protocol entry to "OSMOUSE" and remove the mouse device
  922.     line. Note the config file is named "XConfig" in OS/2, not
  923.     "XF86Config".
  924.  
  925. 3.22 I heard about special features in an xterm...
  926.  
  927.     Yes, there are line editor functions built into the XF86SUP.SYS
  928.     driver which you will mainly encounter in the xterm. The following
  929.     functions are available currently:
  930.         CRSR<-, CTRL-B: back one char
  931.         CRSR->, CTRL-F: forward one char
  932.         CTRL-H, DEL<-: Delete char to the left
  933.         CTRL-U: clear entire line buffer
  934.         CTRL-A: cursor to beginning of line
  935.         CTRL-E: cursor to end of line
  936.         CTRL-K: kill to end of line
  937.         CTRL-V: Quote next char, i.e. next keystroke is added
  938.                 to the buffer without interpretation
  939.         DELETE (keypad): Delete char on cursor position
  940.         INSERT: Toggle insert mode
  941.         CRSR ^, CRSR v: retrieve last command (history feature)
  942.  
  943. 3.23 But these features of A 3.22 do not work for me?
  944.  
  945.     You have an old version of XF86SUP.SYS installed. You need
  946.     version 1.432 or later. A usable version is always in the file
  947.     *BASE.ZIP in the XFree86 distribution, even if a XF86S*.ZIP 
  948.     containing the driver source is not available. The XF86SUP.SYS version
  949.     1.420 from 3.1.2D does not have all features.
  950.  
  951. 3.24 The "history feature" described in Q 3.23 has some rough edges.
  952.  
  953.     Right, there are still a few bugs in XF86SUP.SYS. Will be fixed 
  954.     sometime in the future. It should not crash, at least.
  955.  
  956. 3.25 When I switch from PM to X, the first line I enter in an xterm 
  957.      results in garbage.
  958.  
  959.     See answer to Q 3.24.
  960.  
  961. 3.26 My software needs three buttons, but I have only a 2 button mouse.
  962.  
  963.     Enable the lines "Emulate3Buttons" and Emulate3Timeout 50"
  964.     in your XConfig file. The third button is then activated by
  965.     pressing both buttons simultaneously.
  966.  
  967. 3.27 Can I swap the mouse buttons for a "lefthanded mouse"?
  968.  
  969.     Yes, use the command
  970.         xmodmap -e "pointer = 3 2 1"
  971.     on a command line or in the xinitrc file or make an Xmodmap file
  972.     for that purpose.
  973.  
  974. 3.28 My national keyboard does not work, it has the US mapping, e.g. 'y' and 
  975.      'z' swapped on German keyboards.
  976.  
  977.     Since XKB does not work yet, use the old fashioned method of an
  978.     .Xmodmap file. Startx.cmd is prepared to look for the file 
  979.     /XFree86/lib/X11/xinit/.Xmodmap (provided you haven't rewritten it).
  980.     You find sample files in /XFree86/lib/X11/xmodmap/Xmodmap.* for 
  981.     various countries. If you write a new one which is not yet in the
  982.     distribution, please send it to me (Holger.Veit@gmd.de) for 
  983.     inclusion into the next release.
  984.  
  985. 3.29 Can I use the xmodmap file from Linux or *BSD?
  986.  
  987.     Yes.
  988.  
  989. 3.30 Can I use the one that I use at work for the SGI, HP, Sun, AIX machine?
  990.  
  991.     Likely not, this is the problem with Xmodmap files: they depend on the 
  992.     X server's idea how to assign keyboard (scan) codes to keys.
  993.  
  994. 3.31 The ALT-GR key on some european keyboards does not work.
  995.  
  996.     Add the following to the .Xmodmap file:
  997.         clear Mod1
  998.         clear Mod2
  999.         add Mod1 = Alt_L
  1000.         add Mod2 = Mode_switch
  1001.  
  1002. 3.32 How do I configure xman?
  1003.  
  1004.     Xman uses the following conventions:
  1005.     - It searches for man pages in the directories specified in the
  1006.       MANPATH environment variable. This is a semicolon (';') separated
  1007.       list of directories of the structure
  1008.         drive:/dir/.../man1
  1009.                   /man2
  1010.                   /man3
  1011.                   ...
  1012.       Not all chapters man1-mann need to be existant.
  1013.       If you have installed 312Fman.zip, you can see the structure under
  1014.       \XFree86\man.
  1015.     - Preformatted pages are compressed with gzip (.gz extension).
  1016.       Such preformatted pages are produced from unformatted pages with
  1017.         tbl file.man | neqn | groff -man | gzip >file.gz
  1018.     - Unformatted pages are not compressed and have the extension 
  1019.       corresponding to the chapter number of the man directory, e.g.
  1020.       in \XFree86\man\man1 this would be "1", like "grep.1".
  1021.     - If you have unformatted man pages, you must have the groff utilities
  1022.       installed (groff, neqn, tbl).
  1023.     - If you use only preformatted manpages, you need 'cat' and 'gzip'.
  1024.       Both utilities are available from hobbes.nmsu.edu.
  1025.  
  1026.  
  1027. 4. Programming and Porting of Software
  1028. --------------------------------------
  1029.  
  1030. 4.1 I have some cool X fonts from other X11 systems. How do I convert them
  1031.     to the ".pcz" format?
  1032.  
  1033.     The ".pcz" is exactly the same as the ".pcf.Z" format known from
  1034.     Unix. Just rename your files, copy them to the font directories
  1035.     and run the 'mkfontdir' utility.
  1036.  
  1037. 4.2 Where is the contrib kit? Should I port it?
  1038.  
  1039.     (3.1.2D) The contrib utilities are not yet part of the distribution;
  1040.     they will become available later. Don't port them, they are already
  1041.     on my disk.
  1042.  
  1043. 4.3 I have found a cool X utility which I want to port. How should I proceed?
  1044.  
  1045.     Normally, with X utilities, you get an Imakefile. Simply proceed as
  1046.     if you were under Unix. Run 'xmkmf -a' to compile. Read the
  1047.     programming section on special issues.
  1048.  
  1049. 4.4 Is there a utility for...?
  1050.  
  1051.     If you don't find it in the the distribution, or on the ported
  1052.     software page (Q 1.15)
  1053.     Ask whether someone is already porting it, e.g. in the
  1054.     newsgroup comp.os.os2.programmer.porting; if not, then do it yourself.
  1055.     Applications don't appear magically, unless someone really ports them.
  1056.     So why not YOU?
  1057.  
  1058. 4.5 Are there games...?
  1059.  
  1060.     See Q 4.4.
  1061.  
  1062. 4.6 Will you port XFree86 to Windows, NT, Win95?
  1063.  
  1064.     NEVER!
  1065.  
  1066. 4.7.1 Is there a better window manager than twm?
  1067.  
  1068.     There are a number of them, e.g. ctwm and fvwm, available through
  1069.     the ported software web page.
  1070.  
  1071. 4.7.2 Why is FVWM (Q4.7.1) not the default window manager? It has many
  1072.       advantages, e.g. ...
  1073.  
  1074.     It is available on the ported page, so if you want it, get it. The
  1075.     distribution reflects what is in the core part of X11R6 which offers 
  1076.     twm by default. There is more stuff that would be worth becoming
  1077.     part of the standard, such as xv, but ...well, it isn't...
  1078.  
  1079. 4.8 Do you plan to port Motif?
  1080.  
  1081.     Sigh. The problem with Motif is that it is owned by a consortium
  1082.     that collects money with licensing Motif. I have a copy of the
  1083.     Motif source code and I expect that it won't be much more complex
  1084.     to port than the public X11 libraries, now that I know how to do 
  1085.     this. The problem then is that I cannot give out the code or put
  1086.     it on an FTP server, not even diffs. I don't have the time nor
  1087.     resources to open a business that sells licenses of the libraries
  1088.     to anyone interested and collect the royalties to the Motif Open
  1089.     Software Consortium. Initially, I thought I would simply make
  1090.     binaries, encrypt them and put them on a FTP server. People or
  1091.     institutions that give me a proof of a valid Motif license would
  1092.     then get the decryption key. I was told, however, that this scheme
  1093.     would be juridically suspicious.
  1094.  
  1095.     So, this may be a point where companies, for instance, who are already
  1096.     involved in the Motif business could jump in, and offer the missing
  1097.     link. I have neither interest nor time to manage this.
  1098.  
  1099.     For now, I would recommend that someone takes over the task of
  1100.     porting Ousterhout's TCL/TK, which at least gives a Motif look&feel
  1101.     and should now be pretty simple with the X11 APIs.
  1102.     I remember that there was also an initiative to make a free clone
  1103.     of Motif, but I don't remember details and status. Can anyone help 
  1104.     here?
  1105.  
  1106. 4.9 XFree86/OS2 is free, but copyrighted software. Is commercial software
  1107.     based on this allowed or welcome?
  1108.  
  1109.     XFree86/OS2 requires the use of the GNU gcc compiler. There may
  1110.     be certain restrictions and side effects involved concerning the
  1111.     GPL and the use of certain libraries. I won't discuss this here,
  1112.     but I would have no concerns regarding this.
  1113.     If you aren't concerned either: Yes, commercial applications are
  1114.     allowed and welcome. THIS IS YOUR CHANCE!
  1115.     
  1116. 4.10 Will there be a version for the PowerPC and will there be support for
  1117.      the next version of OS/2 (Merlin)?
  1118.  
  1119.     I haven't seen OS/2 for the PowerPC yet, and IBM is quite busy to
  1120.     keep it secret (I won't follow the FUD that it is dead). If there
  1121.     is a public version available and the hardware in a reasonable
  1122.     price range, I'll consider having a look at it.
  1123.     Currently the system relies on certain properties of the OS/2
  1124.     implementation on Intel machines, so some changes will be necessary.
  1125.  
  1126.     I haven't seen Merlin yet either, so I won't guarantee it will work
  1127.     with it. Given the compatibility of OS/2 versions so far, I don't
  1128.     see a real reason why it would not work under Merlin, but if not,
  1129.     I am optimistic to find workarounds.
  1130.  
  1131. 4.11 Are there static versions of the X libraries?
  1132.  
  1133.     Yes, they are separeately available in the package 312FSLIB.ZIP.
  1134.     The libraries have been renamed to *_s.a to distinguish from the
  1135.     DLL forwarder libraries.
  1136.  
  1137. 4.12 Will there be singlethreaded libs?
  1138.  
  1139.     No. GCC is free software, and most stuff written for it is also
  1140.     freely available. Recompile any singlethreaded libs you want to
  1141.     link to a X application.
  1142.  
  1143. 4.13 I want to have support for a commercial compiler, because I do not
  1144.      want to use gcc.
  1145.  
  1146.     You want a version for a commercial compiler? No problem: write one.
  1147.     
  1148. 4.14 Will the DLLs link with Watcom, Borland, Cset, VAC++, Metaware?
  1149.  
  1150.     In theory, yes; the calling convention of the API functions is
  1151.     "_System". However, there may be a large number of EMXisms in them
  1152.     which may prevent running. You need the EMX runtime DLLs anyway.
  1153.  
  1154. 4.15 Why must I use GNU make? I am accustomed to XYZmake which has very nice
  1155.      features.
  1156.  
  1157.     Well, Imakefiles also have nice features, particularly that they
  1158.     expand to Makefiles that may have several thousand lines. I have
  1159.     tested numerous make programs: all but GNU make failed this benchmark
  1160.     somehow. You are accustomed to XYZmake; let's say, imake is
  1161.     accustomed to GNU make.
  1162.  
  1163. 4.16 Are there special porting considerations?
  1164.  
  1165.     Some things occur again and again:
  1166.  
  1167.     - Use the Imakefile and do not try to handcraft or patch a
  1168.       Makefile. Things will go wrong!
  1169.     - Read about the macros ProgramTargetName() and LibraryTargetName()
  1170.       and use them in the Imakefile, rather than hacking .exe and .lib
  1171.       names. The above will work, hacking won't.
  1172.     - Compile and link everything with the -Zmtd option, the libraries
  1173.       are multithreaded by intention.
  1174.     - Use "#ifdef OS2Architecture" in an Imakefile to specify an
  1175.       OS/2 dependent part.
  1176.     - In source or header files, exclusively use "#ifdef __EMX__" for
  1177.       OS/2 EMX specific parts. Don't use other symbols, such as
  1178.       "OS2", "__OS2__", "i386", "__GNUC__", or "__32BIT__".
  1179.       Use only #ifdef, #else, #endif, not #elif, as some other compilers
  1180.       don't support this.
  1181.     - If you think there is a bug in the provided X11 include files,
  1182.       you are doing something wrong.
  1183.     - Many Imakefiles silently assume they are running under Unix,
  1184.       and therefore have program and library names hardcoded in.
  1185.       Use the LibraryTargetName and ProgramTargetName macros to wrap
  1186.       libs and programs, such as in
  1187.         EXTRA_LIBRARIES = ../Xpmlib/LibraryTargetName(Xpm)
  1188.         PROGRAMS = ProgramTargetName(xterm) ProgramTargetName(resize)
  1189.     - Unix does not have drive letters, so a file (resources, fonts, 
  1190.       config, etc.) path starts with '/' normally. XFree86 is located
  1191.       in a tree below %X11ROOT%\XFree86\... To prepend the X11ROOT part
  1192.       to a file path, a special function named __XOS2RedirRoot exists
  1193.       which you are supposed to use in these cases rather than an insane
  1194.       own solution. The prototype of this function is:
  1195.       const char* __XOS2RedirRoot(const char* pathname);
  1196.     - Don't reinvent the wheel concerning environment variables. Use the
  1197.       ones that are described in the installation file README.OS2, rather
  1198.       than invent yet another variable name for USERs, HOME directories,
  1199.       TMP directories, etc.
  1200.     - Although the rule was broken multiple times already in XFree86/OS2,
  1201.       try to make your filenames comply with the 8.3 file name convention,
  1202.       so that users may relocate them to elsewhere.
  1203.     - The libraries are multithreaded EMX libs for certain reasons. This
  1204.       causes a few side effects, particularly if fork() is involved.
  1205.       I got fork running in several situations, but it is no fun.
  1206.       Try to rewrite this code where possible (well-meant advice).
  1207.     - Many software from Unix assumes that lines have '\n' as a
  1208.       line delimiter. The X applications are linked with
  1209.       \emx\lib\binmode.o. Don't change this, some code relies
  1210.       on this. Rather rewrite the code to accept '\r\n' as a line
  1211.       delimiter.
  1212.     - You may use all Dos* API functions, as long as they don't conflict
  1213.       with EMX somehow (e.g. _beginthread vs. DosCreateThread). Stay
  1214.       away from Kbd*, Mou*, Vio* calls - none of those will do what you
  1215.       expect, but you can severely influence the operation of the X11
  1216.       system.
  1217.     - If you must do port I/O, use the functions from xf86sup.sys for
  1218.       this; this driver is there anyway, so why not take advantage
  1219.       of it? Common precautions for directly accessing hardware apply.
  1220.     - Code that relies on Unix security, job control, tty/pty handling,
  1221.       needs major rewriting. In most cases, it is easier to make a
  1222.       separate file for OS/2 rather than clutter the original one with
  1223.       #ifdef clauses.
  1224.     - X11 executables must be linked as "WINDOWCOMPAT" and "EXETYPE OS2"
  1225.       (the only exceptions are the X servers and xinit).
  1226.     - XFree86/OS2 by default does not have 'sh', so rewrite Unix shell
  1227.       scripts to REXX cmd files. Don't rely on others to install 'sh'
  1228.       or other tools just for you.
  1229.     - If you want to contribute other software, please follow these
  1230.       guidelines for making your distribution zip file:
  1231.       - Use OS/2 zip for packing, even if some foobar packer gives you
  1232.         1 % better compression. Don't use tar and gzip.
  1233.       - If you use an Imakefile (which is common practice with X apps),
  1234.         set the X11ROOT variable to another letter than the one where you
  1235.         have your X11 tree. This makes it easier for you to combine
  1236.         all necessary files into a distribution.
  1237.       - Use exactly the same tree structure as XFree86/OS2 is using
  1238.         Don't reinvent wheels and install to /usr/local/bin or similar, or
  1239.         rely on users to edit config.sys to change the PATH or DLL PATH.
  1240.       - The last section means that the directories in your archive
  1241.         should be rooted to /XFree86.
  1242.       - Put sources in a separate archive, not in the binary release,
  1243.         and root this archive at /XFree86/src/PACKAGENAME, e.g.
  1244.         /XFree86/src/xfoo-0.42.
  1245.       - The reason for all that is that I want to engage Software
  1246.         Installer in the future to improve the installation procedure.
  1247.         This should integrate all contribution packages as well. I'll
  1248.         reject non-conforming contributions without warning.
  1249.  
  1250. 4.17 'make' does not work.
  1251.  
  1252.     MAKE is a REXX cmd script which is installed in \XFree86\bin. This
  1253.     script sets certain important variables and then calls the x11make.exe
  1254.     program (which is gnumake 3.71) which is known to work.
  1255.     You have some other make.cmd or make.exe somewhere in the path. If
  1256.     you do not remove or rename this, you won't be able to compile
  1257.     X11 code successfully.
  1258.  
  1259. 4.18 When I start an application I have compiled myself, the speaker beeps.
  1260.  
  1261.     Use an Imakefile. You have not passed the correct options to gcc.
  1262.     The most simple Imakefile to compile a client with just one
  1263.     source file "foo.c" looks like this:
  1264.     ======snip========================
  1265.     SimpleProgramTarget(foo)
  1266.     ======snip========================
  1267.     which will produce about 600 lines of Makefile.
  1268.  
  1269. 4.19 How do I make a XFree86 compliant DLL?
  1270.  
  1271.     The 3.1.2F distribution contains sample files from the original
  1272.     XFree86/OS2 code to build the library Xext.dll (a small DLL; it does
  1273.     not contain the Xext source files, though). Take this as a reference
  1274.     how to build an own DLL. Note that you still need some secondary
  1275.     literature on special features of Imakefile rules. A recommended
  1276.     book on Imakefiles is available from O'Reilly&Assoc publ. (Using imake).
  1277.     Ask in your bookstore.
  1278.  
  1279. 4.20 How do you make the packages of ported software?
  1280.  
  1281.     I use RCS (available from hobbes.nmsu.edu) to make copies of each
  1282.     file before I modify it the first time. Later I use the modified
  1283.     files to produce context diff files using rcsdiff.
  1284.     When I managed to get some code working, I run 'make install', and
  1285.     'make install.man' which will usually install all necessary files in
  1286.     the right place. When I think the code is working correctly, I do
  1287.     the following: I change the X11ROOT variable in a CMD window to
  1288.     something else, e.g. from X11ROOT=d: (which it is on my system by 
  1289.     default) to X11ROOT=c:, and run 'make install install.man' again.
  1290.     This will build the tree of files again on C: where I can easily
  1291.     pack it with the zip utility after adding README files and diff files
  1292.     manually.
  1293.  
  1294. 5. Reported working hardware
  1295. ----------------------------
  1296.  
  1297. The following condensed reports were extracted from numerous email 
  1298. conversations, for your reference. I have anonymized them to protect
  1299. email conversation and people (note: I won't make the names and email
  1300. addresses available to anyone else even if some company might find such a
  1301. list attractive for advertising). I haven't verified many of them
  1302. of them personally, but you can draw a conclusion about hardware which 
  1303. is in use (rumor was that a P100 with 32MB were not sufficient). It may also
  1304. serve as a reference for video card manufacturers to understand where the
  1305. market is with OS/2: If you don't care about OS/2 and X11, then high-end
  1306. users as the ones interested in both OS/2 and X11 will choose better
  1307. supported products. IMHO, the list below gives a clear answer.
  1308.  
  1309. Thanks to all people who responded and now recognize their system mentioned 
  1310. here.
  1311.  
  1312. - 486-DX2/66 24MB RAM, Microchannel, XGA-2, Warp blue, AGX server, 1024x768
  1313. - P75, ATI Mach64 XPression, TCP/IP 2.0 with CSDs, Fixpack 17, Warp red
  1314. - ATI Mach64 4MB VRAM, Warp Connect FP 17, 800x600, PM 1280x1024
  1315. - 486-66 20MB, Diamond Stealth 64 DRAM 2MB (S3 864)
  1316. - 486-66 16MB, CirrusLogic GD-5430, SVGA server, Warp Red FP17
  1317. - P100, Triton, 16MB RAM, ATI Mach64 Expression AT&T20C496 RAMDAC
  1318.   Warp Fullpack FP17
  1319. - 486-50, Mach32 ISA
  1320. - 486-66, 16MB, Cirrus 5428 VLB, SVGA server, 1024x768 @ 35.5khz
  1321. - Gateway 2000 P120, 40MB, ATI Winturbo, 1024x768x8
  1322. - Shuttle HOT-433, 486-80, Mach64
  1323. - 486-66, 24MB, Cirrus 5434 2MB, SVGA server, Warp Connect FP17
  1324. - P60, 32MB, ATI Mach64 Expression PCI 2MB, Warp Connect
  1325. - 486-66, 16MB, #9 GXE64 Pro VLB, S3 Server, Warp Red FP 17
  1326. - Dell P90, #9GXE Pro, S3 Server
  1327. - 486dx4/100, 16MB, miro Crystal 12SD Trio32, S3 server, Warp Connect
  1328. - 486-66, 32MB, SPEA Mirage P64 VLB 2MB, Trio64, S3 Server, Warp FP17, TCP/IP 2.0
  1329. - 486-66, 32MB, CLGD5426
  1330. - IBM Thinkpad 755CD, WD90C24A
  1331. - P75, 16MB, Matrox Millenium, VGA16 640x480, Warp Red, FreeTCP
  1332. - P90, 16MB, Mach64, Warp red, FP5, 640x400
  1333. - 486-66, 20MB, Diamond Viper, Warp red, FP17
  1334. - P100, 32MB, S3 864, Warp red, FP17
  1335. - - Orchid Fahrenheit S3 864, S3 and Mono Server.
  1336. - IBM PS 6384, 486SX/33, S3 805/ATT C491 RAMDAC, 1024x768x8
  1337. - 486DX33, 16MB, ATI Graphics Vantage, Mach8 server, Warp blue
  1338. - Cyrix 486DLC-40(386 board), ATI Graphics Ultra, Mach8, Warp red FP17, FreeTCP
  1339. - 486DX4/?, 16MB, S3 805 VL-41, Warp
  1340. - 486-66, 16MB, ATI Mach64 2MB, Warp red
  1341. - Dell Dimension P100c, #9 GXE64, Trio64, 2MB DRAM
  1342. - - STB Powergraph 64 PCI, S3 Trio64V+, rev 531
  1343. - P90, 24MB, Graphics Pro Turbo, Mach64 Server, Warp Connect FP17
  1344. - 486DX33, ET4000 ISA, SVGA server, Warp red
  1345. - Gateway 2000 486-66, 24MB, ATI Graphics Ultra Pro, Mach32, Warp red
  1346. - 486-66 16MB, Cirrus Logic CLGD5426, SVGA Server, Connect FP17
  1347. - P90, 32MB, ET4000/W32p with STG1700 RAMDAC
  1348. - 486DX50, 16MB, ET4000 VLB, Connect FP17
  1349. - 486-66, 20MB, Genoa Phantom 64, S3 864, 2MB
  1350. - 486-100, 20MB, Cirrus Clogic VLB 5428, Connect FP17
  1351. - 486-66, 16MB, Hercules Dynamite ET4000/W32p rev A 2MB, Connect FP17
  1352. - P100, 32MB, ELSA 2000 AVI PCI, 4MB, S3 Server, Connect FP 17
  1353. - 486-80, 20MB, Graphics Ultra Pro, Mach32 2MB, Connect
  1354. - P90, 16MB, Diamond Stealth Video DRAM, S3 server, Connect
  1355. - P120, 32MB, ATI Mach64, 2MB
  1356. - 486DX33, Diamond Speedstar plus, SVGA server, Warp red, FP17
  1357. - - Diamond Stealth 64VLB 1MB DRAM, Warp red FP17, FreeTCP
  1358. - 486DX2-?, 20MB, Graphics Pro Turbo VLB, 4MB, Mach64, Warp red
  1359. - 486DX33, 16MB, ET4000, SVGA server, Warp red FP17
  1360. - P90, 32MB, SPEA Mirage P64 PCI, 2MB, S3 server, Warpserver beta1
  1361. - 486-66, 16MB, Genoa 8500 VL, CL5426, 1074x768x8, Warp red, FP17
  1362. - P166, 48MB, ATI Mach64 4MB
  1363. - IBM Thinkpad 370C, WD90C24, SVGA server, 640x480x8
  1364. - - Cardex Challenger ET4000/W32p VLB, Warp red, FP17
  1365.  
  1366.  
  1367. 6. Bugs
  1368. -------
  1369.  
  1370. Is there information about bugs and will there be "fixpacks"?
  1371.  
  1372.     Yes, the most recent information about bugs will be available via
  1373.     http://borneo.gmd.de/~veit/os2/xf86bugs.html (sometimes updated
  1374.     every hour or day). The HTML files linked in this WWW tree are 
  1375.     available through FTP as well: borneo.gmd.de /pub/SYDIS/X/html/*,
  1376.     fixes that become available are at /pub/SYDIS/X/fixes/*.
  1377.  
  1378. Because of my workload in the last months, there are only few changes
  1379. to the buglist from 3.1.E to 3.1.2F, so the list below is almost the same
  1380. as with 3.1.2E. Sorry.
  1381.  
  1382. I hope to fix some more things though after the critical release date 1st Sept,
  1383. and likely release some fixes.
  1384. 3.1.2F, OTOH, contains several hundred improvements and more supported hardware
  1385. from the XFree86 core release, so it might be valuable for people who had
  1386. difficulties with 3.1.2D and 3.1.2E. So far 3.1.2F mainly keeps the ball
  1387. rolling when 3.1.2E expires on 1 Sep 96.
  1388.  
  1389.  
  1390. --- Some program does not read its resources, fonts, help files, or other
  1391.     files correctly.
  1392.  
  1393.     (3.1.2D) This is a bug and is related to the effect that the X11
  1394.     came from Unix with a single root-based file system, in contrast to
  1395.     OS/2 which uses drive letters. There are numerous locations where
  1396.     such file paths exist, and each location needs prepending a drive 
  1397.     letter (see Q 5.4). Try the following: run the X server from the
  1398.     same drive your XFree86 tree is on; if the problem disappears, 
  1399.     you have found yet another location we forgot to change. Send us a
  1400.     detailed bug report.
  1401.  
  1402.     Another source of problems are files which contain CR-LF as a
  1403.     line delimiter. We have to fix this the hard way unfortunately;
  1404.     for well-defined reasons programs are linked with \emx\lib\binmode.o.
  1405.     You might try to convert offending files to the Unix convention
  1406.     with the program \XFree86\lib\X11\etc\fixcrlf.exe.
  1407.         fixcrlf filename
  1408.     This will convert the file in place. Never apply this program to
  1409.     executables, fontfiles or other binaries.
  1410.     We need a bug report for the program anyway.
  1411.  
  1412. --- Some Imakefiles won't work.
  1413.  
  1414.     Not all Imake rules have been converted, only those which are really
  1415.     in use for rebuilding the X11R6 code. This should cover the majority
  1416.     of common X applications. If you find a rule which fails (indicator
  1417.     is that there is no replacement in os2.rules or os2Lib.rules)
  1418.     report it as a bug. It remains your problem (you should contact and
  1419.     flame the author for dirty hacks), if some Imakefile contains
  1420.     Unixisms, such as 'sh' command sequences.
  1421.  
  1422. --- XKB does not work.
  1423.  
  1424.     Leave this alone for now, and use a Xmodmap file instead.
  1425.  
  1426. --- XDM is missing.
  1427.  
  1428.     It needs some prerequisites for porting.
  1429.  
  1430. --- Some code from the ported software page is buggy.
  1431.  
  1432.     Maybe. Bugs are in the responsibility of the person who ported it.
  1433.     Send a bug report this person.
  1434.  
  1435. -- "xterm -e commandname" does not work as expected.
  1436.  
  1437.     If "commandname"="CMD.EXE", it works, but if it is for instance 'ls'
  1438.     only a window is opened, but no output is generated.
  1439.